The present invention relates generally to the field of data communication. In particular, the present invention relates to data communication involving the Transmission Control Protocol (TCP) where acknowledgement transmissions by the receiving entity are dynamically delayed in response to the congestion window size of a sending entity that is connected to the receiving entity via an asymmetric connection.
Currently, practically all forms of information exchange and communication subsist on data communication. For example, data communication is a necessary operation in the transmission of facsimile documents. Another important example of the ubiquity of data communication is the Internet where data communication is vital in enabling large files to be downloaded from Web sites to an Internet surfer""s computer. A further example of the indispensability of data communication can be seen in its application in network technology. In a network of computers, the computers communicate with each other through data communication.
Hence, it is clear that the operation of all these systems fundamentally depend on data communication. The speed of data communication translates into the speed of information exchange and communication. Therefore, faster data communication means faster information exchange and communication.
Typically, the process of transmitting information across a network connection between computers using data communication involves a two-way transmission of data. When a sending entity wishes to send information to a receiving entity, the sender""s computer, which is connected to the receiver""s computer through the network connection, initiates a sequence of communication processes that involve the processing of the information. The processing of information usually includes the breaking up of information into packets of data. These data packets are transmitted to the receiver""s computer through the network""s connection between the computers. Upon receiving these data packets, the receiver computer assembles these data packets into the same information that the sender intended for the receiver to receive.
Upon the arrival of these data packets at the receiver""s computer, the receiver""s computer acknowledges to the sender""s computer that the receiver""s computer has received the data packets. The receiver""s computer does this by sending packets of data that are known as acknowledgement packets. These acknowledgement packets are transmitted in response to the data packets received by the receiver""s computer.
A common and typical way of breaking up information on the sender""s computer and, re-forming the same information on the receiver""s computer is through the use of the Transmission Control Protocol (TCP). The TCP is a communication protocol that is widely used within the Internet domain for the above purposes of breaking up information and re-forming information on the sender and receiver""s computers, respectively. An example of a sender""s computer is a server for a web site. An example of a receiver""s computer is an Internet surfer""s computer. The TCP communication protocol is implemented on both the sender and receiver""s computers. The TCP communication protocol is also responsible for causing acknowledgement packets to be transmitted in response to data packets received by the receiver""s computer.
The TCP communication protocol is an end-to-end reliable transport protocol.
The TCP communication protocol is also known as a xe2x80x9cgentlemanxe2x80x9dcommunication protocol, because this protocol provides for data communication between computers of the sender and receiver while having regard to congestion conditions in the Internet. TCP does this by allowing the sender""s computer to start transmission only with small numbers of data packets. As the""sender""s computer receives acknowledgement packets from the receiver""s computer, indicating the successful transmission and reception of the earlier transmitted data packets, the sender""s computer is allowed to increase the number of data packets that the sender""s computer can transmit subsequently. For example, the sender""s computer starts by transmitting one data packet to the receiver""s computer. Upon receiving an acknowledgement packet from the receiver""s computer acknowledging the one data packet that was transmitted, the sender""s computer transmits two further data packets to the receiver""s computer. As the sender""s computer transmits the data packets to the receiver""s computer, the sender""s computer using the TCP communication protocol monitors the number of data packets transmitted and constantly updates a parameter inherent to the TCP communication protocol known as the congestion window size. Hence, when the congestion window size is set to one, the sender""s computer transmits one packet of data to the receiver""s computer. When the sender""s computer receives an acknowledgement packet from the receiver""s computer in response to that one data packet transmitted earlier, the congestion window size is increased to two. With an increased congestion window size, the sender""s computer is allowed to transmit, and therefore transmits, two data packets. When the receiver""s computer receives the two data packets, the receiver""s computer acknowledges each of the two data packets by consecutively transmitting two acknowledgement packets. For each acknowledgement packet received by the sender""s computer, the congestion window size is increased by one. Hence, upon receiving the two consecutively transmitted acknowledgement packets from the receiver""s computer, the congestion window size is raised to four. By this arrangement, the TCP communication protocol imposes on the sender""s computer a condition that the congestion window size increases exponentially as the sender""s computer continues to transmit data packets and receive acknowledgement packets in response to those data packets. This exponentially increasing behavior of the congestion window size is known as the slow start stage of the data communication process between the sender and receiver""s computers. However, as mentioned hereinbefore, the TCP communication protocol is a gentleman""s communication protocol. Therefore the TCP communication protocol cannot allow the sender""s computer to exponentially increase the number of data packets that the sender""s computer transmits infinitely because this causes congestion in the network connection between the sender and receiver""s computers. The TCP communication protocol participates in congestion control by setting a value that dictates the maximum congestion window size before the growth rate of the congestion window size slows down. This value is known as the Slow Start Threshhold (SSTHRESH) value.
When the sender""s computer""s congestion window size reaches the SSTHRESH value, the congestion window size grows linearly, i.e., by one each time a xe2x80x9cwindowxe2x80x9d full of acknowledgement packets are received. The ultimate size that the congestion window size can grow to is limited by the transmission buffer in the receiver""s computer. When the sender""s computer does not receive acknowledgement packets within a certain time from the receiver""s computer for the data packets received in that window, the sender""s computer times out and consequently retransmits lost data packets. The sender""s computer also reduces the congestion window size to 1. This means that as the data communication between the sender and receiver""s computers continues, the sender""s computer resumes data communication by transmitting one data packet to the receiver""s computer. In the same manner as described above, the congestion window size exponentially increases. However, through a congestion control mechanism inherent to the TCP communication protocol, the SSTHRESH value reduces to half of the previous congestion window size.
Hence, when the exponentially increasing congestion window size reaches the new SSTHRESH value, the TCP communication protocol stops increasing the congestion window size by one for each acknowledgement packet received. Instead, the congestion window size is increased by one only when one window full of acknowledgement packets are received collectively. Using the previous example when the congestion window size is raised to four, and the new SSTHRESH value is four, the sender""s computer transmits four data packets and waits for four acknowledgement packets in response to those earlier transmitted four data packets. If there is no congestion in the network connection between the sender and receiver""s computers, and none of the four data packets are lost in the connection, the receiver""s computer receives these four data packets. In response to these four data packets, the receiver""s computer generates four acknowledgement packets and transmits these four acknowledgement packets to the sender""s computer. When the sender""s computer receives these four acknowledgement packets, instead of increasing the congestion window size each time one acknowledgement packet is received, the sender""s computer increases the congestion window size by one only when all four acknowledgement packets are received. Alternatively, the sender""s computer may increase the congestion window size by one-fourth each time one acknowledgement packet is received, thereby achieving the same effect. By doing this, the TCP communication protocol ensures that the rate of increase of data packets transmitted by the sender""s computer is linear. This stage is known as the congestion avoidance stage.
Currently, the TCP communication protocol adequately meets general network performance requirements when the network connection between the sender and receiver""s computers is symmetric. That is, the sender""s computer transmits information to the receiver""s computer, i.e. downstream transmission, at the same rate that the receiver""s computer transmits information to the sender""s computer, i.e. upstream transmission. However, currently, there are many network connections that are asymmetric in nature. That is, the downstream transmission occurs at a faster rate than the upstream transmission. One reason for this is that the bandwidth allocation in the network connections is not equal. That is, the downstream transmission bandwidth is greater than the upstream transmission bandwidth. Another reason for this is that the receiver""s computer usually has limited transmission resources. For example, a transmission buffer in the receiver""s computer, in which acknowledgement packets and other outgoing data packets are stored prior to transmission has limited size. Therefore, if the receiver""s computer is communicating with several other computers, the sender""s computer being one of them, the transmission buffer in the receiver""s computer may be substantially filled. Hence, an acknowledgement packet generated by the receiver""s computer in response to a data packet transmitted by the sender""s computer may be placed in a queue in the transmission buffer. This queue may be long and therefore the acknowledgement packet may be kept in the transmission buffer for a considerable period of time before the acknowledgement packet is transmitted to the sender""s computer. In a worst-case scenario, where the transmission buffer is already full before the receiver""s computer generates the acknowledgement packet, the acknowledgement packet is not placed in the queue. When this happens, the receiver""s computer does not transmit the acknowledgement packet to the sender""s computer at all. As a result the sender""s computer, after a futile wait for an acknowledgement for a specified period, re-transmits the data packet.
If the upstream transmission rate is slower than the downstream transmission rate, the overall transmission rate accords with the upstream transmission rate. That is, the upstream transmission rate dictates the overall transmission rate. This is because, as described hereinbefore, any process of sending information includes the processes of transmitting data packets by the sender""s computer and acknowledging the reception of these data packets by the receiver""s computer. If the acknowledgement process is slow, the direct consequence is a slow process of transmission of data packets.
To overcome this problem, there are a number of commercial systems available in the market currently. These systems propose to alleviate the problem by compensating the slower upstream transmission rate with fewer acknowledgement packets. These approaches may be useful, provided there are no adverse effects. For example, an approach is not a good one if the TCP communication protocol requires an overhaul. As another example, an inadequate approach is one that in attempting to solve the problem of a slower upstream transmission rate affects the downstream transmission by causing bursty downstream transmission. Bursty downstream transmission is adverse, because the bursty transmission contributes to congestion in the network connection.
One prior art system proposes a collapsible transmission buffer or xe2x80x9cACK filteringxe2x80x9d concept. The system operates as follows: each data packet transmitted by the sender""s computer has a sequence number. The corresponding acknowledgement packet transmitted by the receiver""s computer also has a sequence number. If one data packet is transmitted earlier than another data packet, the earlier data packet is allocated a smaller sequence number than that later generated data packet. Similarly, if an acknowledgement packet is transmitted earlier than another, the earlier acknowledgement packet is allocated a smaller sequence number than the later generated acknowledgement packet. In this approach, the transmission buffer in the receiver""s computer is modified so that acknowledgement packets having larger sequence numbers than the acknowledgement packets already queuing in the transmission buffer replace the acknowledgement packets in the queue.
The basis for such a proposal is that the TCP communication protocol is designed to recognize that the reception of acknowledgement packets with larger sequence numbers indicates that the data packets with smaller sequence numbers transmitted by the sender""s computer have been successfully received by the receiver""s computer. These acknowledgement packets with larger sequence numbers also provide information that the data packets with the corresponding larger sequence numbers transmitted by the sender""s computer have also been successfully received by the receiver""s computer.
In addition, the congestion window size in the sender""s computer is set to a value that accords with the latest acknowledgement packets. This may cause the sender""s computer to transmit a burst of data packets following the acknowledgement, which may undesirably contribute to congestion in the network connection. A further significant disadvantage of this conventional system is that modification needs to be made to the receiver""s computer at the lower data-link communication protocol that manages the transmission buffer, or that of a modem that connects the receiver""s computer to a network.
A variation of this prior art system attempts to alleviate the problem of bursty transmission through the intervention of a router. A router is one of many network elements that form part of the network connection between the sender and receiver""s computers. One of the router""s functions is to route data. In this system variation, a router is tasked to regenerate acknowledgement packets. However, this router must be one that forms a symmetric connection with the sender""s computer. The acknowledgement packets that are regenerated by the router are those acknowledgement packets that have been replaced by the acknowledgement packets with larger sequence numbers in the transmission buffer of the receiver""s computer. One consequential problem of this system variation is that it is necessary to modify the router. The router has to be modified to recognize that acknowledgement packets with larger sequence numbers have replaced acknowledgement packets queuing in the transmission buffer of the receiver""s computer. This recognition process requires the router to have a memory dedicated to tracking the sequence numbers of data packets that have passed through the router to reach the receiver""s computer. Modifications as such are generally complex in nature and are not desirable, since routers are integral elements of the network to which the sender and receiver""s computers are connected. The modifications, therefore, are highly impractical for cost and complexity reasons.
Another prior art system proposes that the sender""s computer provide information to the receiver""s computer in relation to the congestion situation in the network connection. In one instance, this information consists of the current congestion window size of the sender""s computer. The sender""s computer provides the current congestion window size to the receiver""s computer via the data packets that the sender""s computer transmits to the receiver""s computer. For example, when the sender""s computer transmits a data packet to the receiver""s computer, the sender""s computer appends to that data packet information on the current congestion window size. When the receiver""s computer receives this data packet with the information on the current congestion window size, the receiver""s computer is able to use this information to determine the number of subsequent data packets that the receiver""s computer would wait to receive before the receiver""s computer acknowledges these data packets.
Having knowledge of the sender""s computer""s current congestion window size, the receiver""s computer is able to calculate the number of data packets that the receiver""s computer must wait before transmitting an acknowledgement packet. In general, having a larger congestion window size means that the sender""s computer can send more data packets before having to stop and wait for an acknowledgement. Therefore, the receiver""s computer can transmit acknowledgement packets more sparingly. This directly implies that the receiver""s computer can wait for more data packets to arrive before transmitting an acknowledgement. The direct impact is that lower upstream bandwidth is required by the receiver""s computer.
In another instance, where the concept of Acknowledgement Congestion Control (ACC) is proposed, a router in the network connection between the sender and receiver""s computers provides information on the congestion situation in the network connection instead of the sender""s computer. The ACC concept relies on the fact that those data or acknowledgement packets contain unused bits that may be set by a router when such packets pass through that router. Hence, if a router handling the upstream transmission has knowledge of the congestion situation in the network connection, the router is able to appropriately report the congestion situation by the use of these unused bits. In situations where the router is aware that there is congestion in the network connection, the router sets an ECN bit in the acknowledgement packets that pass through the router. When the sender""s computer receives these acknowledgement packets, with the ECN bits set, the sender""s computer replicates the ECN bit in the data packets that the sender""s computer subsequently transmits to the receiver""s computer. The receiver""s computer, upon receiving data packets with the ECN bits sets therefore can infer that there is upstream transmission congestion. With knowledge of this upstream transmission congestion, the receiver""s computer can thus appropriately reduce the number of acknowledgement packets to be transmitted to the sender""s computer. Although this proposal is an elegant solution, the problem of bursty downstream transmission is not addressed.
In the above two instances, complex modifications need to be made to some communication elements that are involved in the data communication between the sender and receiver""s computers. For example, in the first instance, the TCP communication protocols on both the sender and receiver""s computers must be modified. The TCP communication protocol on the sender""s computer must be modified to include the current congestion window size information in the data packets that the sender""s computer""s transmits. The TCP communication protocol in the receiver""s computer must be modified so that the receiver""s computer can have regard to the current congestion window size information appended to the data packets when the receiver""s computer is generating acknowledgement packets in response to these data packets.
In the second instance, more communication elements in the network connection between the sender and receiver""s computers require modification. The TCP communication protocols in the sender and receiver""s computers, and the routers in the network connection between the sender and receiver""s computers must be modified. The routers must be modified so that any congestion situation in the network connection between the sender and receiver""s computers is monitored. In the event that there is a congestion problem, the router must be able to set the ECN bit in the acknowledgement packets transmitted by the""sender""s computer. The TCP communication protocol on the sender""s computer must be modified to check the ECN bit in every acknowledgement packet transmitted by the receiver""s computer. If the router sets the ECN bits in the acknowledgement, the TCP communication protocol in the sender""s computer must replicate these ECN bits in the subsequent data packets that the sender""s computer transmits to the receiver""s computer. The TCP communication protocol on the receiver""s computer must also be modified so that the receiver""s computer recognizes and takes into account the information provided by the setting of the ECN bits in data packets transmitted by the sender""s computer""s.
It is clear from the above prior art proposed solutions that a need exists for a simpler solution to the problems related to an asymmetric network connection. The desirable effects of this solution should provide that the slower upstream transmission is compensated by transmission of fewer acknowledgement packets transmitted by the receiver""s computer. The solution should also address the issue of bursty downstream transmission. Most importantly however the solution should be a simple one so that any effect the solution has on the network elements of network connection between the sender and receiver""s computers is minimal.
Various aspects of the invention are directed to ameliorating or overcoming one or more disadvantages of current approaches. In particular, the aspects of the invention are directed to addressing the disadvantages associated with slow upstream transmission rates of asymmetric network connections. Also, the aspects of the invention overcome the disadvantages associated with the need for manifold modifications to the network elements of the network connection between the sender""s computer and receiver""s computer. Furthermore, the aspects of the invention are directed to reducing bursty downstream transmission of the network connection between the sender and receiver""s computer when congestion is detected in the network.
In accordance with a first aspect of the invention there is disclosed a method of data communications in an asymmetric network connection according to a communications protocol wherein a receiver transmits acknowledgement packets for acknowledging data packets transmitted by a sender, the method including the steps of measuring the interval between the transmission of data from one of the receiver and sender and the reception of a response thereto by the one of the receiver and sender; determining a window size indicative of the maximum number of the data packets transmittable by the sender for a duration absent any reception of the acknowledgement packets by the sender for the duration in accordance with the communications protocol, wherein the window size is determined using the measured interval; and regulating the frequency of transmission of the acknowledgement packets from the receiver, the regulation dependent on the determined window size.
In accordance with a second aspect of the invention there is disclosed a computer program product for data communications in an asymmetric network connection according to a communications protocol, including a computer usable medium having computer readable program code means embodied in he medium for causing data communications wherein a receiver transmits acknowledgements for acknowledging data packets transmitted by a sender, the computer program product having computer readable program code means for measuring the interval between the transmission of data from one of the receiver and sender and the reception of a response thereto by the one of the receiver and sender; computer readable program code means for determining a window size indicative of the maximum number of the data packets transmittable by the sender for a duration absent any reception of the acknowledgement packets by the sender for the duration in accordance with the communications protocol, wherein the window size is determined using the measured interval; and computer readable program code means for regulating the frequency of transmission of the acknowledgement packets from the receiver, the regulation dependent on the determined window size.
In accordance with a third aspect of the invention there is disclosed a communications system in an asymmetric network connection according to a communications protocol wherein a receiver transmits acknowledgement packets for acknowledging data packets transmitted by a sender, the communications system including a timer for measuring the interval between the transmission of data from one of the receiver and sender and the reception of a response thereto by the one of the receiver and sender; a counter for determining a window size indicative of the maximum number of the data packets transmittable by the sender for a duration absent any reception of the acknowledgement packets by the sender for the duration in accordance with the communications protocol, wherein the window size is determined using the measured interval; and a generator for regulating the frequency of transmission of the acknowledgement packets from the receiver, the regulation dependent on the determined window size.